const express = require('express')
const authenticateToken = require('../utils/authMiddleware.js') // 引入身份验证中间件
const xlsx = require('xlsx')
const { sendResponse } = require('../utils/sendResponse.js')
const { getFilePath } = require('../utils/constants.js') // 引入常量

const router = express.Router()
// 使用绝对路径
const filePath = getFilePath('users')

// 获取用户信息的路由 (需要身份验证)
router.get('/getUserInfo', authenticateToken, (req, res) => {
  // 获取用户ID参数
  const { userId } = req.query
  // 如果没有传入 userId，使用当前认证用户的 account
  const accountToSearch = userId || req.user.account
  const currentUserAccount = req.user.account // 当前登录用户的账号

  const workbook = xlsx.readFile(filePath)
  const worksheet = workbook.Sheets['users']
  const usersData = xlsx.utils.sheet_to_json(worksheet)

  // 查找指定的用户
  const user = usersData.find((user) => user.Account === accountToSearch)

  if (!user) {
    return sendResponse(res, 404, {}, '未找到该用户。')
  }

  // 如果传入了 userId 参数，检查当前用户是否已关注该用户
  let isFollowing = false
  if (userId) {
    const currentUser = usersData.find((user) => user.Account === currentUserAccount)
    if (currentUser && user.Followers) {
      // 检查当前用户是否在该用户的粉丝列表中
      isFollowing = user.Followers.includes(currentUser.ID)
    }
  }

  // 返回用户信息（可以根据需要排除一些敏感信息）
  const { Password, Followers, ...userInfo } = user
  return sendResponse(res, 200, { ...userInfo, isFollowing }, '获取用户信息成功。')
})

module.exports = router
